package com.cykj.user.service;

import com.cykj.system.api.domain.CtAddress;

import java.util.List;
import java.util.Map;

/**
 * 地址服务接口
 */
public interface IAddressService {
    /**
     * 查询地址列表
     */
    List<CtAddress> selectAddressList(Long customerId);

    /**
     * 查询地址详情
     */
    CtAddress selectAddressById(Long id);

    /**
     * 新增地址
     */
    int insertAddress(CtAddress address);

    /**
     * 修改地址
     */
    int updateAddress(CtAddress address);

    /**
     * 删除地址
     */
    int deleteAddressById(Long id);

    /**
     * 设置默认地址
     */
    int setDefaultAddress(Long id, Long customerId);

    /**
     * 逆地理编码
     */
    Map<String, String> reverseGeocode(Double longitude, Double latitude);

    // 新增：地址转经纬度
    Map<String, String> geocode(String address);

    // 扩展：支持周边检索的地址搜索
    List<Map<String, Object>> searchAddress(
            String keyword,
            String region,
            Double longitude,
            Double latitude,
            Integer radius);

}